1. Field of the Invention
This invention relates in general to signals read from a data storage medium, and more particularly to a method and apparatus for providing a read channel having combined parity and non-parity post processing.
2. Description of Related Art
Recently developed data storage devices, such as magnetic disk drive devices (i.e., hard disk drives), have increased storage capacity and increased data access speed. With these advantages, magnetic disk drive devices have become widely used as auxiliary memory devices for computer systems. More generally, developments in pulse communications related to these improvements in disk drive technology have recently provided increased speed and reliability in a wide range of pulse communications systems.
The primary features of a magnetic disk drive device that affect storage capacity and access speed are the head, the recording medium, the servo mechanism, the signal processing technique used in the read/write channel, and the like. Among these, signal processing techniques utilizing PRML (Partial Response Maximum Likelihood) detection have greatly contributed to the increased storage capacities and high access speeds seen in modern magnetic disk drive devices.
Each read/write head generates or senses electromagnetic fields or magnetic encodings on the magnetic disk as areas of magnetic flux. The presence or absence of flux reversals in the electromagnetic fields represents the data stored on the magnetic disk. A flux reversal is a change in the magnetic flux on contiguous areas of the magnetic disk. The presence or absence of magnetic flux reversals correspond to binary 1's and 0's of a diagnostic input signal.
To “write” data onto a magnetic disk, electronic components receive data from a host device and translate the data into magnetic encodings. The head transfers the magnetic encodings onto a portion of the magnetic disk.
To “read” data from the magnetic disk, the head is positioned adjacent to the portion of the magnetic disk having the desired magnetic encodings. The head senses and transfers the magnetic encodings from the magnetic disk. The electronic components translate the magnetic encodings into the data, which is transferred to the host device. The host device may be a personal computer or other electronic equipment. The electronic components may apply error detection and correction algorithms to ensure accurate storage and retrieval of data from the magnetic disk. To improve data storage densities on disk drives, magneto resistive and inductive read/write heads have been developed with increased sensitivity to sense smaller amplitude magnetic signals and with increased signal discrimination.
The primary function of the disk drive read channel is to reliably recover data from a noise contaminated read back signal. State of the art detection architectures equalize to a fixed length partial response target and then use the Viterbi algorithm for detection. A read channel circuit includes components for initial processing of the analog read signal generated by the read/write head of the device. This processing typically includes automatic gain control (AGC) amplification, filtering, and equalization, as well as analog-to-digital conversion.
It is also common to use some type of post-processing after the Viterbi algorithm to further improve error rate. Post processor algorithms typically generate reliability information for dominant error events and use this information in conjunction with prior knowledge of parity constraints on blocks of the encoded data. In other cases the reliability generation algorithm may be good enough that it does not need to be used in conjunction with parity information. This may be the case, for example, when using a longer partial response target to generate reliability information than was used by the Viterbi algorithm in detection.
Written data bits, when read back, can be thought of as being filtered by some response and corrupted with noise. This signal is then equalized such that the combined effect of filtering and equalization is some desired target response. The Viterbi Algorithm is then used to obtain an estimate of the data sequence. This estimate is then filtered by the target response to obtain a noiseless version of the equalizer output that is then subtracted from the noisy equalizer output and filtered by the time reversed target response.
The time-reversed filter is also referred to as the matched filter. The matched filter output is then input to each of N different error event filters. An offset term specific to each error event filter output is then added to generate a final reliability number associated with each error event. This is done each bit time. The reliabilities are then sent to a selection algorithm block. The selection block uses a specific algorithm for deciding on an error sequence. This error sequence can then be used to improve the reliability of the original decisions made at the Viterbi Algorithm output.
Current selection algorithms generally operate according to two forms. For example, the selection algorithms may incorporate prior knowledge of parity constraints on blocks of the encoded ak data steam or, in the case of a windowed selection algorithm, parity constraints are not relied upon for determining the error sequence.
A codeword size is fixed ahead of time. A typical size is somewhere in the range of 30 to 110 bits. Throughout the processing of each bit in a codeword a list of the predetermined number of most likely error events is kept along with the associated error event type and location. This list is reset at the beginning of each codeword. At the same time the parity syndrome associated with the detected codeword bits is computed and is available at the end of the codeword. At the end of the codeword, a correction is made based on the most likely single or non-overlapping pairs of error events from the final list that fixes parity. If none of these choices fixes the parity no correction is made.
For example, when parity is used to correct error events, a post-processor may determine a next closest pattern, in Euclidian distance, that fixes parity using a list of error events. However, the number of error events that can be corrected in this matter is limited based upon the number of bits of parity that are used. When parity is not used to correct for error events, a post-processor can determine if using an error event will improve an Euclidian distance fit based on using a longer target than the target used in the Viterbi detector. The post-processor biases error event likelihoods based on a number of transitions. Still, each of these two forms of selection algorithms consider only those error events that resulted in a non-zero parity syndrome. Thus, the error rate performance is less than optimal.
It can be seen that there is a need for a method and apparatus for providing a read channel having combined parity and non-parity post processing.